<?php

require '../util/Includes.php';
//$_GET[ 'accion' ] = 1;
//$_GET[ "iId" ] = 1;
$_accion = (int) $_GET[ 'accion' ];
$sResponse = CommonWeb::traerCodRespJSON( CODE_FAILED );
$tbUsuario = new TbUsuario();
$blFlag = false;
switch ( $_accion ) {
    case ACC_GET_USER_BY_ID:
        $iId = (int) $_GET[ "iId" ];
        $usuario = UsuarioDAO::traerPorId( $iId );
        if ( $usuario != NULL ) {
            $sResponse = UsuarioBean::returnJSONString( $usuario );
        }
        break;
    case ACC_ELIMINAR_USUARIO_POR_ID:
        $iId = (int) $_GET[ "iId" ];
        $usuario = UsuarioDAO::traerPorId( $iId );
        $usuario->setActivo( 0 );
        if ( UsuarioDAO::actualizar( $usuario, $tbUsuario->getCIdUsuario() . "=$iId" ) ) {
            $sResponse = UsuarioBean::returnBasicJSONString( $usuario );
        }
        break;
    case ACC_AGREGAR_USUARIO:
    case ACC_EDITAR_USUARIO:
        $iTipoUsuario = $_GET[ "iTipoUsuario" ];
        $sNombre = $_GET[ "sNombre" ];
        $sApPaterno = $_GET[ "sApPaterno" ];
        $sApMaterno = $_GET[ "sApMaterno" ];
        $dtFechaNac = $_GET[ "dtFechaNac" ];
        $sDni = $_GET[ "sDni" ];
        $sTlfFijo = $_GET[ "sTlfFijo" ];
        $sTlfCelular = $_GET[ "sTlfCelular" ];
        $sSexo = $_GET[ "sSexo" ];
        $sEmail = $_GET[ "sEmail" ];
        $sUsername = $_GET[ "sUsername" ];
        $sPassword = trim( $_GET[ "sPassword" ] );
        $iHabilitado = (int) $_GET[ "iHabilitado" ];
        $iId = (int) $_GET[ "iIdUsuario" ];
        $usuario = new UsuarioBean();
        if ( $iId != -1 ) {
            $usuario = UsuarioDAO::traerPorId( $iId );
        }
        $usuario->setUsuarioTipoBean( UsuarioTipoDAO::traerPorId( $iTipoUsuario ) );
        $usuario->setNombre( $sNombre );
        $usuario->setApPaterno( $sApPaterno );
        $usuario->setApMaterno( $sApMaterno );
        $usuario->setFechaNac( $dtFechaNac );
        $usuario->setDni( $sDni );
        $usuario->setTlfFijo( $sTlfFijo );
        $usuario->setTlfCelular( $sTlfCelular );
        $usuario->setSexo( $sSexo );
        $usuario->setEmail( $sEmail );
        $usuario->setUsername( $sUsername );
        $usuario->setHabilitado( $iHabilitado );
        $usuario->setActivo( 1 );
        if ( $iId != -1 ) {
            $sPassword = empty( $sPassword ) ? $usuario->getPassword() : $sPassword;
            $usuario->setPassword( $sPassword );
            $blFlag = UsuarioDAO::actualizar( $usuario, $tbUsuario->getCIdUsuario() . "=$iId" );
        } else {
            $usuario->setPassword( $sPassword );
            $blFlag = UsuarioDAO::insertar( $usuario );
        }

        if ( $blFlag ) {
            $usuario = UsuarioDAO::traerPorUsername( $sUsername );
            $sResponse = $usuario->returnBasicJSONString( $usuario );
        }

        break;
    case ACC_EXISTS_USERNAME:
        $iId = (int) $_GET[ "id" ];
        $sUsername = trim( $_GET[ "username" ] );
        $usuario = UsuarioDAO::traerPorUsername( $sUsername );
        if ( $usuario == NULL || $usuario->getIdUsuario() == $iId ) {
            $sResponse = "true";
        } else {
            $sResponse = "false";
        }
        break;
    case ACC_DISABLE_USER_BY_ID:
        $iId = (int) $_GET[ "iId" ];
        $usuario = UsuarioDAO::traerPorId( $iId );
        if ( $usuario != null ) {
            $iHabilitado = $usuario->getHabilitado() == 0 ? 1 : 0;
            $usuario->setHabilitado( $iHabilitado );
            if ( UsuarioDAO::actualizar( $usuario, $tbUsuario->getCIdUsuario() . "=$iId" ) ) {
                $sResponse = UsuarioBean::returnBasicJSONString( $usuario );
            }
        }
        break;
    default:
        break;
}
echo $sResponse;
?>
